package com.tlias.service.impl;


import com.tlias.entity.Dept;
import com.tlias.mapper.DeptMapper;
import com.tlias.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
//@Component//@Component注解,  表示这个类被Spring管理将这个类放到Spring容器中管理
@Service//@Service注解，@Component注解衍生注解,标注在标注在业务层类上,和@Component注解效果一模一样  表示这个类被Spring管理将这个类放到Spring容器中管理
public class DeptServicelmpl implements DeptService {
    @Autowired//@Autowired注解从Spring容器中获取对象
    private DeptMapper deptMapper;
/**
 * 删除部门信息
 * @param id 部门唯一标识
 */
@Override
public void delete(Integer id) {
    // 调用 Mapper 层的 delete 方法，根据 id 删除部门记录
    deptMapper.delete(id);
}

/**
 * 保存新部门信息
 * @param dept 待保存的部门对象
 */
@Override
public void save(Dept dept) {
    // 设置更新时间为当前时间
    dept.setUpdateTime(LocalDateTime.now());
    // 设置创建时间为当前时间
    dept.setCreateTime(LocalDateTime.now());
    // 调用 Mapper 层的 save 方法，将部门对象插入数据库
    deptMapper.save(dept);
}

/**
 * 根据 ID 查询部门信息
 * @param id 部门唯一标识
 * @return 查询到的部门对象
 */
@Override
public Dept getid(Integer id) {
    // 调用 Mapper 层的 getid 方法，根据 id 查询部门信息
    return deptMapper.getid(id);
}

/**
 * 更新部门信息
 * @param dept 待更新的部门对象
 */
@Override
public void update(Dept dept) {
    // 设置更新时间为当前时间
    dept.setUpdateTime(LocalDateTime.now());
    // 设置创建时间也为当前时间（注意：这里可能不合理，创建时间通常不应在更新时修改）
    dept.setCreateTime(LocalDateTime.now());
    // 调用 Mapper 层的 update 方法，更新部门信息
    deptMapper.update(dept);
}

/**
 * 查询所有部门信息
 * @return 部门信息列表
 */
@Override
public List<Dept> list() {
    // 调用 Mapper 层的 list 方法，查询所有部门信息
    return deptMapper.list();
}



}
